Skip to content

SmartEditor 使用说明

ChainMaker SmartEditor 使用说明#

产品背景及意义#

目前市面上主流的后端开发语言还是以Java、Go等语种为主,而区块链行业智能合约的开发语言的以Solidity居多,对于传统语种开发者想转型做合约开发而言存在一定的语言门槛。

为了降低使用门槛,使区块链出圈,团队致力打造Go语言合约相关生态,考虑到目前市面上尚无专门为Go语言服务的合约IDE产品,故我们自行研发长安链合约IDE, Chainmaker SmartEditor。

目标用户#

区块链合约开发工程师,以及其他对区块链感兴趣,想从事区块链行业相关应用开发的朋友。

整体业务流程#

注册/登录#

注册#

长安链合约IDE (Chainmaker SmartEditor)使用长安链GitLab账户直接登录,如果您没注册,可点击注册按钮跳转到 注册页面 完成注册。

登录#

如果您已经有长安链GitLab账户,点击登录按钮可跳转到长安链GitLab进行授权登录。

  • 如果您已经授权过,则下次将免授权登录。
  • 您如果需要替换IDE的登录账户,请先替换长安链GitLab账号,再重新登录。

全局界面分区说明#

  • 文件目录模块用于管理合约工程及相关文件。
  • 调试合约用于调试正在编写的合约代码
  • 编译合约用于将所编写的合约代码编译成可部署的合约文件,支持导出到本地然后部署到链上,也支持直接通过IDE部署到链上。
  • 部署合约用于将已编译的合约通过IDE直接部署到指定的区块链上。
  • 调用合约用于通过IDE直接调用已经部署到链上的合约,用于验证合约是否部署成功。
  • 系统设置用于设置IDE的UI样式,如主题,字号、行高等。
  • 代码编写区用于编写合约代码。
  • 代码大纲用于快速定位代码。
  • 执行日志输出区用于展示在合约调试、合约编辑操作时产生的相关日志信息
  • 合约事件展示用于展示合约在调试过程中产生的事件信息。
  • 合约世界状态用于记录合约在调试过程中产生的状态信息,支持基于已存在的状态进行二次调试调用。

全局快捷键说明#

mac系统#

  • command + \ 自动补全
  • ctrl + q :关闭当前编译器
  • ctrl +n 创建新文件
  • command + c:复制选中内容
  • command+ v:粘贴所复制到内容
  • command + f:检索
  • command + l:跳转到行
  • command + e:删除当前行
  • command + s:保存当前编译器文件
  • command + shift + up :复制到上方
  • command + shift + down:复制到下方
  • command + shift + s:保全当前所有编译区文件
  • command + shift + f :格式化
  • command + shift + r:替换全部
  • command + 鼠标左键:跳转到函数方法详情

Windows系统#

  • ctrl + \ 自动补全
  • ctrl + q :关闭当前编译器
  • ctrl + c:复制选中内容
  • ctrl + v:粘贴所复制到内容
  • ctrl + f:检索
  • ctrl + l:跳转到行
  • ctrl + e:删除当前行
  • ctrl + s:保存当前编译器文件
  • ctrl + shift + up :复制到上方
  • ctrl + shift + down:复制到下方
  • ctrl + shift + s:保全当前所有编译区文件
  • ctrl + shift + f :格式化
  • ctrl + shift + r:替换全部
  • ctrl + 鼠标左键:跳转到函数方法详情

合约编写#

合约文件目录#

  • 每个用户都有一个workspace空间。首次使用IDE时,系统会默认创建一个Demo存证合约,供开发者体验。
  • 您也可以在workspace下创建自己的合约项目,一个账户支持创建多个合约项目,并一个一级文件夹为基准区分合约工程。
  • 支持对文件进行的常规操作,如新增、删除、导出、重命名等。
  • 一个合约工程可以由多个文件构成,支持跨文件调用函数方法。
  • 如果您已经有现成的合约文件,支持批量导入IDE内,单次最多可导入20个文件,每个文件大小不超过2M。如果文件实在太大无法导入,可以选择直接复制代码粘贴进来。

  • 此处展示 Go SDK 和依赖的第三方库的源码。可在代码编写区通过快捷键(command + 鼠标左键)跳转到源码,查看源码详情。

合约代码编写#

  • 通过左上角的放大、缩小图标,快速改变代码编写区的的文字字体大小和行高。
  • 通过右上角的展开/收齐图标可以展开/收齐代码编写区。
  • 支持代码高亮、支持语义分析,语法检测、代码自动补全。
  • 支持代码格式化。
  • 支持同合约工程跨文件调用函数方法。
  • 目前不支持自动保存功能,要进行合约调试和部署时,请注意先保存合约已更新最新代码信息。

合约调试#

  • 合约代码编写完后,会自动解析出代码里的的方法列表,支持在IDE内调用所编写的合约方法进行调试。
  • 调试前需要先构建合约。
  • 如果需要进行跨合约调用,则需要选择所要跨的合约,并一并进行构建,构建成功后,才能调试。
  • 调试合约过程中,在底部会展示相关的执行日志,并记录所产生的合约事件 ,以及合约状态。
  • 支持引用已有的状态值进行二次调试。

  • 为方便调试,支持手动增删改合约世界状态的key和value。
  • 双击某一行,可展开/收起合约世界状态的历史迭代器,其中历史记录只能查看,不能修改。
  • 为方便查看跨合约调用的合约状态变更情况,支持在世界状态处切换合约。

合约编译及导出#

  • 目前IDE所支持的合约语言为Go语言、支持的虚拟机类型为Docker Go虚拟机,支持的长安链版本为 V2.1.0+。
  • 合约编译完成后,可直接在IDE内通过Web插件部署到链上,也可将编译后到文件下载到本地自行部署。

部署合约到链上#

  • 可将编译好的合约,通过Web插件直接部署到指定的链上。若您部署合约时,未安装插件,请根据提示安装Web插件后,再部署合约。
  • 选择合约时,请留意最新的编译时间,以免选错合约。
  • 请留意合约名称+合约版本号必须唯一,不能与链上已有的合约有冲突。
  • 目前暂不支持升级合约。
  • 如果所要部署的合约,需要填一些额外信息,可在部署时一并写入。

  • 在Web插件上,需要预先链接区块链和添加上链账户信息,相关操作说明可参考 Web插件使用说明文档
  • 通过IDE唤起Web插件后,选择该合约要部署的链,以及要使用的上链账号,并进行签名,发起上链交易。上链过程,视区块网络情况而定,可能需要一定的时间,请耐心等待几秒钟。
  • 部署成功后,可在Web插件的上链记录里找到相关的上链记录,以及交易哈希,如查看更多信息,可复制交易哈希到区块链浏览器内查看交易详情。

调用链上合约#

  • 当部署合约成功后,可以IDE内进行调用合约,已验证合约是否生效。
  • 选择合约方法,输入参数后,点击合约调用,将唤起Web插件,并在插件上选择相应的链账号,进行调用。
  • 上链过程,视区块网络情况而定,可能需要一定的时间,请耐心等待几秒钟。

  • 调用成功后,可在Web插件的上链记录里找到相关的上链记录,以及交易哈希,如查看更多信息,可复制交易哈希到区块链浏览器内查看交易详情。